package com.mes.cloud.dao;


import com.mes.cloud.api.dto.request.product.ProductDirectoryPageRequest;
import com.mes.cloud.entity.ProductDirectory;
import com.mes.cloud.entity.vo.ProductDirectoryVo;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.ids.SelectByIdsMapper;

import java.util.List;

/**
 * 产品目录
 *
 * @author ysd
 * @email shaodong.yuan@pactera.com
 * @version 2019-08-20 16:23:41
 */
public interface ProductDirectoryDao  extends SelectByIdsMapper<ProductDirectory>, Mapper<ProductDirectory> {

    /**
     * <查询所有
     */
    List<ProductDirectoryVo> findALLProductDirectory(ProductDirectoryVo selectParam);

    /**
     * <查询所有
     */
    List<ProductDirectoryVo> findPageListProductDirectory(ProductDirectoryPageRequest pageRequest);

    /**
     * <查询_编辑_产品目录树
     */
    List<ProductDirectoryVo> findUpdateTreeProductDirectory(@Param("id") String id);

    /**
     * 查询目录详情
     **/
    ProductDirectoryVo selectProductDirectoryDetails(String id);

    /**
     *  所有下级：是否有相关品牌
     **/
    List<ProductDirectoryVo> selectProductDirectoryLastList(String id);

    /**
     *  所有父级：是否有相关品牌
     **/
    List<ProductDirectoryVo> selectProductDirectoryParentList(String id);

    /**
     * 查询目录关联数据
     **/
    Integer selectProductByDirectoryId(String id);

    /**
     * 根据产品目录ID查询所有 最底层 子节点的信息
     */
    List<ProductDirectoryVo> selectLastSonList(@Param("directoryId") String directoryId);

    /**
     * @Author ysd
     * @Description 查询详情
     * @Date 14:16 2019/10/28
     **/
    ProductDirectoryVo findDirectoryDetailsBySelfDirectory(@Param("selfDirectory") String selfDirectory);
}
